package com.tanhua.dubbo.api;

import com.tanhua.domain.db.QuestionUser;
import com.tanhua.domain.db.Questionnaire;
import com.tanhua.domain.vo.AnswersVo;
import com.tanhua.domain.vo.SimilarYouVo;

import java.util.List;

/**
 * @author 胡少东
 * @create 2021/8/6 20:51
 */
public interface SoulTestApi {

    /**
     * 通过用户的id 来查找他所有的问卷信息
     * @param userId
     * @return
     */
    List<QuestionUser> findQuestionUserByUserId(Long userId);

    /**
     * 查找所有问卷
     * @return
     */
    List<Questionnaire> findAllQuestionnaire();

    /**
     * 将用户和问卷关联
     * @param userId
     * @param questionnaire
     */
    void saveUserAndQuestionnaire(Long userId, Questionnaire questionnaire);

    /**
     * 通过id 来查找questionnaire
     * @param questionnaireId
     * @return
     */
    Questionnaire findQuestionnaireById(Long questionnaireId);

    /**
     * 将用户的答题 统计出总分
     * @param answersVos
     * @return
     */
    Integer totalScore(List<AnswersVo> answersVos);

    /**
     * 根据logoText 来获取相似的用户
     * @param logoText
     * @return
     */
    List<SimilarYouVo> findSimilarYouVo(Long userId, String logoText);

    /**
     * 更改questionuser中的 reportId
     * @param reportId
     */
    void saveQuestionUserReportId(Long userId,Long questionnaireId,Long reportId);

    /**
     * 更具问题id 来获取questionnaire的id
     * @param questionId
     * @return
     */
    Integer getQuestionnaireIdByQuestionId(Long questionId);

    /**
     * 解锁
     * @param userId
     */
    void unLock(Long userId);
}
